﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;

namespace S
{
    public partial class S : Form
    {
        public S()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            BoxAdd("===================");
            BoxAdd("===================");


            int port = 5080;
            string host = "192.168.1.102";


            ///创建终结点（EndPoint）
            IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例
            IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例


            ///创建socket并开始监听
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像，如果用udp协议，则要用SocketType.Dgram类型的套接字
            s.Bind(ipe);//绑定EndPoint对像（2000端口和ip地址）
            
            s.Listen(0);//开始监听
            BoxAdd("等待客户端连接");


            ///接受到client连接，为此连接建立新的socket，并接受信息
            Socket temp = s.Accept();//为新建连接创建新的socket
            BoxAdd("建立连接");
            string recvStr = "";
            byte[] recvBytes = new byte[1024];
            int bytes;
            bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
            recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);


            ///给client端返回信息
            //把客户端传来的信息显示出来
            BoxAdd("server get message:" + recvStr);
            string sendStr = "WWWWWXXXXXXWWWWWWWW";
            byte[] bs = Encoding.ASCII.GetBytes(sendStr);
            temp.Send(bs, bs.Length, 0);//返回信息给客户端
            temp.Close();
            s.Close();


            
        }




        private delegate int myDele(string s);
        private void BoxAdd(string s)
        {
            this.Invoke(new myDele(listBox1.Items.Add), s);
        }


    }
}
